package com.relytosoft.mizar.media.camera.api.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.relytosoft.dubhe.common.core.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import javax.validation.constraints.NotBlank;


@TableName("VID_CAMERA_PLATFORM")
@ApiModel("CameraPlatform")
public class CameraPlatform extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @ApiModelProperty(value = "主键ID", required = true)
    @NotBlank(message = "主键ID不能为空")
    @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    /**
     * 系统ID;设备ID\通道ID
     */
    @ApiModelProperty(value = "系统ID;设备ID;通道ID", required = true)
    @TableField("OWN_ID")
    @NotBlank(message = "系统ID;设备ID;通道ID不能为空")
    private Integer ownId;

    /**
     * 类型;1设备、2通道
     */
    @ApiModelProperty(value = "类型;1设备、2通道")
    @TableField("TYPE")
    private Integer type;

    /**
     * 第三方平台;华为HW、海康HK、比特大陆
     */
    @ApiModelProperty(value = "第三方平台;华为HW、海康HK、比特大陆", required = true)
    @TableField("PLATFORM_NAME")
    @NotBlank(message = "第三方平台;华为HW、海康HK、比特大陆不能为空")
    private String platformName;

    /**
     * 第三方平台域编码
     */
    @ApiModelProperty(value = "第三方平台域编码")
    @TableField("PLATFORM_DOMAIN_CODE")
    private String platformDomainCode;

    /**
     * 第三方平台NVR编码
     */
    @ApiModelProperty(value = "第三方平台NVR编码")
    @TableField("PLATFORM_NVR_CODE")
    private String platformNvrCode;

    /**
     * 第三方平台设备编码
     */
    @ApiModelProperty(value = "第三方平台设备编码")
    @TableField("PLATFORM_CAMERA_CODE")
    private String platformCameraCode;

    /**
     * 第三方平台通道编码
     */
    @ApiModelProperty(value = "第三方平台通道编码")
    @TableField("PLATFORM_CHANNEL_CODE")
    private String platformChannelCode;

    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    @TableField("REMARK")
    private String remark;

    /**
     * 第三方平台是否同步;1已同步 0未同步
     */
    @ApiModelProperty(value = "第三方平台是否同步;1已同步 0未同步", required = true)
    @TableField("IS_SYNC")
    @NotBlank(message = "第三方平台是否同步;1已同步 0未同步不能为空")
    private Integer isSync;

    /**
     * 状态
     */
    @ApiModelProperty(value = "状态", required = true)
    @TableField("STATUS")
    @NotBlank(message = "状态不能为空")
    private Integer status;

    public CameraPlatform() {
    }

    public CameraPlatform(Integer type, Integer status) {
        this.type = type;
        this.status = status;
    }

    public CameraPlatform(Integer type, String platformName, Integer status) {
        this.type = type;
        this.platformName = platformName;
        this.status = status;
    }

    /**
     * 获得主键ID
     */
    public Integer getId() {
        return this.id;
    }

    /**
     * 设置主键ID
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获得系统ID;设备ID\通道ID
     */
    public Integer getOwnId() {
        return this.ownId;
    }

    /**
     * 设置系统ID;设备ID\通道ID
     */
    public void setOwnId(Integer ownId) {
        this.ownId = ownId;
    }

    /**
     * 获得类型;1设备、2通道
     */
    public Integer getType() {
        return this.type;
    }

    /**
     * 设置类型;1设备、2通道
     */
    public void setType(Integer type) {
        this.type = type;
    }

    /**
     * 获得第三方平台;华为HW、海康HK、比特大陆
     */
    public String getPlatformName() {
        return this.platformName;
    }

    /**
     * 设置第三方平台;华为HW、海康HK、比特大陆
     */
    public void setPlatformName(String platformName) {
        this.platformName = platformName;
    }

    /**
     * 获得第三方平台域编码
     */
    public String getPlatformDomainCode() {
        return this.platformDomainCode;
    }

    /**
     * 设置第三方平台域编码
     */
    public void setPlatformDomainCode(String platformDomainCode) {
        this.platformDomainCode = platformDomainCode;
    }

    /**
     * 获得第三方平台NVR编码
     */
    public String getPlatformNvrCode() {
        return this.platformNvrCode;
    }

    /**
     * 设置第三方平台NVR编码
     */
    public void setPlatformNvrCode(String platformNvrCode) {
        this.platformNvrCode = platformNvrCode;
    }

    /**
     * 获得第三方平台设备编码
     */
    public String getPlatformCameraCode() {
        return this.platformCameraCode;
    }

    /**
     * 设置第三方平台设备编码
     */
    public void setPlatformCameraCode(String platformCameraCode) {
        this.platformCameraCode = platformCameraCode;
    }

    /**
     * 获得第三方平台通道编码
     */
    public String getPlatformChannelCode() {
        return this.platformChannelCode;
    }

    /**
     * 设置第三方平台通道编码
     */
    public void setPlatformChannelCode(String platformChannelCode) {
        this.platformChannelCode = platformChannelCode;
    }

    /**
     * 获得备注
     */
    public String getRemark() {
        return this.remark;
    }

    /**
     * 设置备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }

    /**
     * 获得第三方平台是否同步;1已同步 0未同步
     */
    public Integer getIsSync() {
        return this.isSync;
    }

    /**
     * 设置第三方平台是否同步;1已同步 0未同步
     */
    public void setIsSync(Integer isSync) {
        this.isSync = isSync;
    }

    /**
     * 获得状态
     */
    public Integer getStatus() {
        return this.status;
    }

    /**
     * 设置状态
     */
    public void setStatus(Integer status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "CameraPlatform{" +
                "id=" + id +
                ", ownId=" + ownId +
                ", type=" + type +
                ", platformName='" + platformName + '\'' +
                ", platformDomainCode='" + platformDomainCode + '\'' +
                ", platformNvrCode='" + platformNvrCode + '\'' +
                ", platformCameraCode='" + platformCameraCode + '\'' +
                ", platformChannelCode='" + platformChannelCode + '\'' +
                ", remark='" + remark + '\'' +
                ", isSync=" + isSync +
                ", status=" + status +
                '}';
    }
}
